#ifndef D3D9RENDERER_H
#define D3D9RENDERER_H

#include <d3d9.h>
#include <d3dx9.h>

class D3D9Renderer
{
public:
	D3D9Renderer();
	D3D9Renderer(const D3D9Renderer&){};
	~D3D9Renderer(){};

	static bool Initialize(HWND _hwnd, bool _fullscreen, bool _vsync, int _horizontalRes, int _verticalRes);
	static bool AdapterSupportInfo();
	static void Clear(DWORD _count, const D3DRECT* _rectsptr, DWORD _flags, D3DCOLOR _clearColor, float _clearDepth, DWORD _clearStencil);
	static void BeginScene();
	static void RenderGame();
	static void RenderMenu();
	static void EndScene();
	static void Present(const RECT* _sourceRectPtr, const RECT* _destRectPtr, HWND _hDestWindow, const RGNDATA* _dirtyRegionPtr);
	static void Shutdown();

	static IDirect3D9* d3d;
    static IDirect3DDevice9* device;
	static ID3DXEffectPool* effectPool;
private:
protected:
	static bool vsync;
	static int videoCardMemory;
	static char videoCardDescription[128];
};

#endif